package org.dtrevien.metamodel.graphviz;

import java.util.ArrayList;
import java.util.List;

import org.dtrevien.metamodel.graphviz.stmt.Stmt;
import org.dtrevien.metamodel.graphviz.visitor.Visitor;

public class Graph {

	protected GraphType type;
	protected boolean strict;
	protected String name;
	
	protected List<Stmt> stmts;
	
	public Graph() {
		this.stmts = new ArrayList<Stmt>();
	}

	public Graph(GraphType type, boolean strict, String name, List<Stmt> stmts) {
		super();
		this.type = type;
		this.strict = strict;
		this.name = name;
		this.stmts = stmts;
	}

	public GraphType getType() {
		return this.type;
	}

	public void setType(GraphType type) {
		this.type = type;
	}

	public boolean isStrict() {
		return this.strict;
	}

	public void setStrict(boolean strict) {
		this.strict = strict;
	}

	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<Stmt> getStmts() {
		return this.stmts;
	}

	public void setStmts(List<Stmt> stmts) {
		this.stmts = stmts;
	}

	public void accept(Visitor v) {
		v.visitGraph(this);
	}
	
}
